一、字符串方法

1、字符串转换:
将一个值转换成一个字符串有两种方法,一是使用 toString() 方法,二是使用转型函数 String()
(1)、大多值都有toString()方法,null和undefined是没有的。

(2)、对于字符串型的值也可以使用toString()方法,它会返回该字符串的一个副本。

(3)、toString()方法可以传递一个参数,表示数值的基数(进制)。

 var t = 8;  
 t.toString(2);  //1000 

默认情况下 参数是10。要说明的是对于非数值类型(boolean,string等)设置toString()的参数是无效的

var t ="8";  
t.toString(2);  //8, 返回字符串的副本;
    

(4)、任何值都可以使用String()方法。它的过程是这样的

    首先,如果值有toString()方法,那么则使用该方法(无参数)。

    其次,那就是该值没有toString()方法,那就是 null 返回 "null",undefined返回"undefined";
   

var a=null;  
String(a);    //"null"

2、字符串分割:
字符串分割,将一个字符串按照某种方式分割成字符串数组,使用 split(separator,howmany) 方法,
第一个参数必需,,为字符串或正则表达式,从该参数指定的地方分割字符串;
第二个参数可选,可指定返回的数组的最大长度

var myStr = "I,Love,You,Do,you,love,me";
var substrArray = myStr .split(","); // ["I", "Love", "You", "Do", "you", "love", "me"];
var arrayLimited = myStr .split(",", 3); // ["I", "Love", "You"];

3、获取字符串长度
获取字符串长度,直接使用 str.length 属性

var myStr = "I,Love,You,Do,you,love,me";
var myStrLength = myStr.length; //25

4、查询子字符串
查询子字符串,可以使用 indexOf()lastIndexOf() 方法
(1)indexOf():从字符串的第一个字符位置开始查找,找到后返回对应下标,找不到返回 -1 ;

var myStr = "I,Love,you,Do,you,love,me";
var index = myStr.indexOf("Love"); // 2 ,基于0开始,找不到返回-1,区分大小写

(2)lastIndexOf():从字符串的末尾开始查找,找到最后出现指定字符串的位置后返回对应下标,找不到返回 -1 ;

var myStr = "I,Love,you,Do,you,love,me";
var index = myStr.lastIndexOf("you"); // 14 //区分大小写

5、字符串替换
替换字符串,使用 strObj.replace(regexp/substr,replacement) 方法,
第一个参数必需,规定要匹配的正则对象,
第二个参数必需,规定了替换文本或生成替换文本的函数。

 var myStr = "I,Love,you,Do,you,love,me";
 var replacedStr = myStr.replace(/love/g,"hate");//"I,Love,you,Do,you,hate,me",全局匹配(g)
var myStr = "I,Love,you,Do,you,love,me";
var replacedStr = myStr.replace(/love/g,"hate");//"I,hate,you,Do,you,hate,me",忽略大小写(i)

6、查找给定位置的字符或其字符编码值
想要查找给定位置的字符,你可以使用如下函数:

var myStr = "I,love,you,Do,you,love,me";
var theChar = myStr.charAt(8);// "o",同样从0开始
   

同样,它的一个兄弟函数就是查找对应位置的字符编码值,如:

var myStr = "I,love,you,Do,you,love,me";
var theChar = myStr.charCodeAt(8); //111
   

7、字符串拼接
字符串连接操作可以简单到用一个加法运算符搞定,如:

var str1 = "I,love,you!";
var str2 = "Do,you,love,me?";
var str = str1 + str2 + "Yes!";//"I,love,you!Do,you,love,me?Yes!"
   

使用js自带 strObj1.concat(strObj2) 方法也可实现

var str1 = "I,love,you!";
var str2 = "Do,you,love,me?";
var str = str1.concat(str2);//"I,love,you!Do,you,love,me?"
   

8、字符串切割和提取
有三种方法可实现,分别为:
(1)、strObj.slice(satrt,end):第一个参数必需,要提取字符串的起始下标。如果为负数的话,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推,第二个参数可选,与strObj.substring()类似。

 var myStr = "I,love,you,Do,you,love,me";
 var subStr = myStr.slice(1,5);//",lov"
   

(2)、strObj.substring(start,end):第一个参数必需,不能为负数,提取字符串初始位置,第二个参数可选,strObj[end]不提取。

var myStr = "I,love,you,Do,you,love,me";
var subStr = myStr.substring(1,5); //",lov";
   

(3)、strObj,substr(start,length):第一个参数必需,提取字符串的初始位置,第二个参数可选,表示提取字符串长度,不写的话默认提取到字符串末尾。

var myStr = "I,love,you,Do,you,love,me";
var subStr = myStr.substr(1,5); //",love"
   

9、字符串大小写转换
常用的转换为大写或者小写字符串函数,如下:

var myStr = "I,love,you,Do,you,love,me";
var lowCaseStr = myStr.toLowerCase();//"i,love,you,do,you,love,me";
var upCaseStr = myStr.toUpperCase();//"I,LOVE,YOU,DO,YOU,LOVE,ME"
  

10、字符串匹配

字符串匹配可能需要你对正则表达式有一定的了解,先来看看match()函数:
   var myStr = "I,love,you,Do,you,love,me";
   var pattern = /love/;
   var result = myStr.match(pattern);//["love"]
   console.log(result .index);//2
   console.log(result.input );//I,love,you,Do,you,love,me

如你所见,match()函数在字符串上调用,并且接受一个正则的参数。来看看第二个例子,使用exec()函数:
    var myStr = "I,love,you,Do,you,love,me";
    var pattern = /love/;
    var result = pattern .exec(myStr);//["love"]
    console.log(result .index);//2
    console.log(result.input );//I,love,you,Do,you,love,me
简单吧,仅仅是把正则和字符串换了个位置,即exec()函数是在正则上调用,传递字符串的参数。对于上面两个
方法,匹配的结果都是返回第一个匹配成功的字符串,如果匹配失败则返回null.

再来看一个类似的方法search(),如:
var myStr = "I,love,you,Do,you,love,me";
var pattern = /love/;
var result = myStr.search(pattern);//2
仅返回查到的匹配的下标,如果匹配失败则返回-1.      

云霄阁主
49 声望4 粉丝